In [3]:
import pandas as pd
import altair as alt
import geopandas as gpd


Data = pd.read_csv('population_trends.csv',sep=',')
UA = gpd.read_file('ukraine.json',driver='GeoJSON')
selection = alt.selection_multi(fields=['region'],on='mouseover')
bound = alt.selection_multi(fields=['region'],on='mouseover')
base = alt.Chart(Data).mark_line().encode(
    x=alt.X('year',scale=alt.Scale(domain=[1989,2019])))
UA['region']=UA['NAME_1']

basemap=alt.Chart(UA).mark_geoshape().encode(color=alt.ColorValue('grey'))

uamap = basemap.encode(
        strokeWidth=alt.condition(
        bound,
        alt.value(1),
        alt.value(10)),
        color=alt.condition(bound,alt.ColorValue('green'),
                              alt.ColorValue('steelblue'))).add_selection(selection)

chart=base.mark_line().encode(y='rate',color='region',
                              
                              opacity=alt.condition(selection,
                                                    alt.value(1),
                                                   alt.value(0.1))).add_selection(bound)
uamap|chart
Out[3]:
In [ ]: